package org.ventura.sistemafinanciero.entity;

// Generated 02-may-2014 11:48:28 by Hibernate Tools 4.0.0

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 * MonedaDenominacion generated by hbm2java
 */
@Entity
@Table(name = "MONEDA_DENOMINACION", schema = "BDSISTEMAFINANCIERO")
@XmlRootElement(name = "monedadenominacion")
@XmlAccessorType(XmlAccessType.NONE)
@NamedQueries({ @NamedQuery(name = MonedaDenominacion.allActive, query = "SELECT m from MonedaDenominacion m WHERE m.moneda.idMoneda = :idmoneda AND m.estado = 1") })
public class MonedaDenominacion implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public final static String allActive = "allActive";

	private BigInteger idMonedaDenominacion;
	private Moneda moneda;
	private String denominacion;
	private BigDecimal valor;
	private BigDecimal estado;
	private Set transaccionBovedaCajaDetalls = new HashSet(0);
	private Set detalleHistorialBovedas = new HashSet(0);
	private Set transaccionBovedaOtroDetalls = new HashSet(0);
	private Set detalleHistorialCajas = new HashSet(0);

	public MonedaDenominacion() {
	}

	public MonedaDenominacion(BigInteger idMonedaDenominacion, Moneda moneda,
			String denominacion, BigDecimal valor, BigDecimal estado) {
		this.idMonedaDenominacion = idMonedaDenominacion;
		this.moneda = moneda;
		this.denominacion = denominacion;
		this.valor = valor;
		this.estado = estado;
	}

	public MonedaDenominacion(BigInteger idMonedaDenominacion, Moneda moneda,
			String denominacion, BigDecimal valor, BigDecimal estado,
			Set transaccionBovedaCajaDetalls, Set detalleHistorialBovedas,
			Set transaccionBovedaOtroDetalls, Set detalleHistorialCajas) {
		this.idMonedaDenominacion = idMonedaDenominacion;
		this.moneda = moneda;
		this.denominacion = denominacion;
		this.valor = valor;
		this.estado = estado;
		this.transaccionBovedaCajaDetalls = transaccionBovedaCajaDetalls;
		this.detalleHistorialBovedas = detalleHistorialBovedas;
		this.transaccionBovedaOtroDetalls = transaccionBovedaOtroDetalls;
		this.detalleHistorialCajas = detalleHistorialCajas;
	}

	@XmlTransient
	@Id
	@Column(name = "ID_MONEDA_DENOMINACION", unique = true, nullable = false, precision = 22, scale = 0)
	public BigInteger getIdMonedaDenominacion() {
		return this.idMonedaDenominacion;
	}

	public void setIdMonedaDenominacion(BigInteger idMonedaDenominacion) {
		this.idMonedaDenominacion = idMonedaDenominacion;
	}

	@XmlTransient
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_MONEDA", nullable = false)
	public Moneda getMoneda() {
		return this.moneda;
	}

	public void setMoneda(Moneda moneda) {
		this.moneda = moneda;
	}

	@XmlElement
	@Column(name = "DENOMINACION", nullable = false, length = 60, columnDefinition = "nvarchar2")
	public String getDenominacion() {
		return this.denominacion;
	}

	public void setDenominacion(String denominacion) {
		this.denominacion = denominacion;
	}

	@XmlElement
	@Column(name = "VALOR", nullable = false, precision = 6)
	public BigDecimal getValor() {
		return this.valor;
	}

	public void setValor(BigDecimal valor) {
		this.valor = valor;
	}

	@XmlElement
	@Column(name = "ESTADO", nullable = false, precision = 22, scale = 0)
	public BigDecimal getEstado() {
		return this.estado;
	}

	public void setEstado(BigDecimal estado) {
		this.estado = estado;
	}

	@XmlTransient
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "monedaDenominacion")
	public Set<TransaccionBovedaCajaDetalle> getTransaccionBovedaCajaDetalls() {
		return this.transaccionBovedaCajaDetalls;
	}

	public void setTransaccionBovedaCajaDetalls(Set transaccionBovedaCajaDetalls) {
		this.transaccionBovedaCajaDetalls = transaccionBovedaCajaDetalls;
	}

	@XmlTransient
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "monedaDenominacion")
	public Set<DetalleHistorialBoveda> getDetalleHistorialBovedas() {
		return this.detalleHistorialBovedas;
	}

	public void setDetalleHistorialBovedas(Set detalleHistorialBovedas) {
		this.detalleHistorialBovedas = detalleHistorialBovedas;
	}

	@XmlTransient
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "monedaDenominacion")
	public Set<TransaccionBovedaOtroDetall> getTransaccionBovedaOtroDetalls() {
		return this.transaccionBovedaOtroDetalls;
	}

	public void setTransaccionBovedaOtroDetalls(Set transaccionBovedaOtroDetalls) {
		this.transaccionBovedaOtroDetalls = transaccionBovedaOtroDetalls;
	}

	@XmlTransient
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "monedaDenominacion")
	public Set<DetalleHistorialCaja> getDetalleHistorialCajas() {
		return this.detalleHistorialCajas;
	}

	public void setDetalleHistorialCajas(Set detalleHistorialCajas) {
		this.detalleHistorialCajas = detalleHistorialCajas;
	}

}
